package com.baitengsoft.patentapimonitor.api.service;

import com.baitengsoft.patentapimonitor.api.entity.RptPatentDataAreaEntity;
import com.baitengsoft.patentapimonitor.api.model.*;

import java.util.List;

/**
 * 专利创造指标分析服务
 *
 * @author Chen 2017/12/25
 */
public interface RptPatentDataAreaService extends BaseService<RptPatentDataAreaEntity> {
    /**
     * 根据年份获取有效发明
     */
    List<RptPatentDataAreaInfo> getValidIPatListByYear(Integer platformid, Integer year);

    /**
     * 万人有效发明专利
     */
    List<RptPatentDataAreaInfo> getMillionIPatByYear(Integer platformid, Integer year);

    /**
     * 专利申请
     */
    List<RptPatentDataAreaInfo> getPatApplyByYear(Integer platformid, Integer year);

    /**
     * 发明专利申请
     */
    List<RptPatentDataAreaInfo> getIpatApplyByYear(Integer platformid, Integer year);

    /**
     * 专利授权
     */
    List<RptPatentDataAreaInfo> getPatAuthorizeByYear(Integer platformid, Integer year);

    /**
     * 发明专利授权
     */
    List<RptPatentDataAreaInfo> getIpatAuthorizeByYear(Integer platformid, Integer year);

    /**
     * 万人专利授权指数
     */
    List<RptPatentDataAreaInfo> getWRPatAuthorizeByYear(Integer platformid, Integer year);

    /**
     * 万人发明授权指数
     */
    List<RptPatentDataAreaInfo> getWRIpatAuthorizeByYear(Integer platformid, Integer year);

    /**
     * 有效专利
     */
    List<RptPatentDataAreaInfo> getYXPatentByYear(Integer platformid, Integer year);

    /**
     * 万人有效专利拥有量
     */
    List<RptPatentDataAreaInfo> getWRYXPatentByYear(Integer platformid, Integer year);

    /**
     * 实质审查
     */
    List<RptPatentDataAreaInfo> getSZSCByYear(Integer platformid, Integer year);

    /**
     * 历年趋势（type =0 申请，tyoe = 1 授权）
     */
    List<WebYearStatisticInfo> getTrendAnalysisList(Integer platformid, Integer type);


    /**
     * 概念页历年趋势
     */
    List<WebYearStatisticInfo> getTrendAnalysisListForHome(Integer platformid, Integer type);

    /**
     * 历年趋势详情
     */
    List<WebYearStatisticInfo> getTrendDetailList(Integer platformid, Integer type, Integer year);

    /**
     * 有效专利区域统计
     */
    List<WebAreaStatisticInfo> getAreaAnalysislList(Integer platformid, String order, String sort);

    /**
     * 有效专利区域统计（所有）
     */
    List<WebAreaStatisticInfo> getAreaAnalysisAllList(Integer platformid, String order, String sort);


    /**
     * IPC管理
     */
    List<WebIPCAnalysisInfo> getIPCAnalysisList(Integer platformid, String order, String sort);

    /**
     * 发明人统计
     */
    List<WebInventorAnalysisInfo> getInventorAnalysislList(Integer platformid);

    /**
     * 代理机构统计
     */
    List<WebAgencyAnalysisInfo> getAgencyAnalysislList(Integer platformid, Integer type);

    /**
     * 获取所有代理机构
     */
    List<WebAgencyAnalysisInfo> getAgencyAnalysislAllList(Integer platformid, Integer type);

    /**
     * 【概览】万人有效专利月份分析
     */
    RptPatentDataAreaInfo getMillionIPatMonthInfo(Integer platformid);

    /**
     * 根据时间范围获取有效发明合计
     */
    Integer getYXFMCountByDateYM(Integer platformid, Integer dateYM);

    /**
     * 获取有效专利区域分析
     */
    List<WebAreaStatisticInfo> getYXAreaAnalysis(Integer platformid);
}
